home *** CD-ROM | disk | FTP | other *** search
Wrap
'************************************************************************** '* MSSetup script for AXIA Common Bird Songs '************************************************************************** '*'$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'mscpydis.inc' '$INCLUDE 'msdetect.inc' ''Dialog ID's CONST WELCOME = 100 CONST AXIAINFO = 101 CONST ASKQUIT = 200 CONST DESTPATH = 300 CONST EXITFAILURE = 400 CONST EXITQUIT = 600 CONST EXITSUCCESS = 700 CONST APPHELP = 900 CONST CHECK = 2500 CONST SMALLWIN = 2200 CONST RESTART = 2600 CONST RESTARTII = 2700 CONST BADPATH = 6400 ''Bitmap ID CONST LOGO = 1 GLOBAL WinDir$ GLOBAL WinSysDir$ GLOBAL DEST$ ''Default destination directory. GLOBAL WINDRIVE$ ''Windows Drive Letter. GLOBAL CHECKSTATES$ GLOBAL CUIDLL$ DECLARE SUB InstallVFW DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER DECLARE SUB Reboot LIB "iniupd.dll" DECLARE FUNCTION ExitWindowsExec LIB "User" (Exec$, Param$) AS INTEGER DECLARE SUB Install DECLARE SUB VWInstall DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE SUB WinExec LIB "kernel.exe" (cmd$, show%) INIT: WinDir$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure SetBitmap CUIDLL$, LOGO SetTitle "Axia Know Your Common Bird Songs Setup" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF" END IF ReadInfFile szInf$ DEST$ = "C:\AXIACBS" '$IFDEF DEBUG i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal WinDrive$ = MID$(GetWindowsDir, 1, 1) IF IsDriveValid(WinDrive$) = 0 THEN i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK) GOTO QUIT END IF '$ENDIF ''DEBUG WELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO WELCOME END IF GETPATH: SetSymbolValue "EditTextIn", DEST$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$) DEST$ = GetSymbolValue("EditTextOut") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DEST$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO WELCOME ELSE GOSUB ASKQUIT GOTO GETPATH END IF Install QUIT: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END ERRQUIT: i% = DoMsgBox("Setup sources were corrupted, call (403) 262-2942!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB Install STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") CreateDir DEST$, cmoNone '* OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0 '* WriteToLogFile "" '* WriteToLogFile " User chose as destination directory: '" + DEST$ + "'" '* WriteToLogFile " User chose option: '" + OPTCUR$ + "'" '* WriteToLogFile "" '* WriteToLogFile "May have had to create the directory: " + DEST$ '* WriteToLogFile "" AddSectionFilesToCopyList "Files", SrcDir$, DEST$ AddSectionFilesToCopyList "Ctl3d", MakePath (SrcDir$, "other"), WinSysDir$ CopyFilesInCopyList '* create the subsets directory CreateDir MakePath(DEST$,"SUBSETS"), cmoNone '* create the INI file ini$ = MakePath(WinDir$, "AXIACBS.INI") CreateIniKeyValue ini$, "startup", "firsttime", "1" , cmoOverwrite CreateIniKeyValue ini$, "midi", "music", "1" , cmoOverwrite CreateIniKeyValue ini$, "zoom", "factor", "200" , cmoOverwrite '* create the program manager group & items CreateProgmanGroup "AXIA CBS", WinDir$+"axiacbs.grp", cmoNone ShowProgmanGroup "AXIA CBS", 1, cmoNone CreateProgmanItem "AXIA CBS", "Axia CBS", MakePath(DEST$,"bin\axia.exe ")+SrcDir$, MakePath(DEST$,"bin\axiaicon.ico")+",,,,"+DEST$, cmoOverwrite CreateProgmanItem "AXIA CBS", "SlideShow", MakePath(DEST$,"bin\pictures.exe ")+SrcDir$+" pictures.dat 5", MakePath(DEST$,"bin\slidshow.ico")+",,,,"+DEST$, cmoOverwrite CreateProgmanItem "AXIA CBS", "HTUA", MakePath(DEST$,"bin\axia.exe ")+SrcDir$+" Ahtua.afs", MakePath(DEST$,"bin\htua.ico")+",,,,"+DEST$, cmoOverwrite CreateProgmanItem "AXIA CBS", "Read Me", MakePath(GetWindowsDir, "write.exe")+" "+SrcDir$+"other\readme.wri", ",,,,", cmoOverwrite INFO: sz$ = UIStartDlg(CUIDLL$, AXIAINFO,"FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO INFO END IF '* IF DoesFileExist (MakePath(WinSysDir$, "msvideo.dll"),femExists) = 0 THEN InstallVfW '* END IF '* CloseLogFile ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN END SUB '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION '*** Installation for video for windows SUB InstallVfW STATIC VFWINIT: CUIDLL$ = "vwcuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure WIN32ENABLED% = 0 MajorVer% = GetWindowsMajorVersion() MinorVer% = GetWindowsMinorVersion() IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software. Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF IF OnWindowsNT() THEN i% = DoMsgBox("This version of Video for Windows does not run on Windows NT.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END END IF SetBitmap CUIDLL$, LOGO SetTitle "Video for Windows 1.1 Runtime" szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "VFWSETUP.INF" END IF ClearCopyList ReadInfFile szInf$ WINDRIVE$ = MID$(GetWindowsDir, 1, 1) VWWELCOME: sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$) IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB VWASKQUIT GOTO VWWELCOME END IF ''Prepare Copy list and check size ClearCopyList SrcDir$ = GetSymbolValue("STF_SRCDIR") + "vfwrt" WinDir$ = GetWindowsDir() DEST$ = GetWindowsDir() WinSysDir$ = GetWindowsSysDir() '' Runtime files (on Windows disk) AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$ AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$ AddSectionFilesToCopyList "Indeo-ini", SrcDir$, WinDir$ '' Check windrive diskspace SizeReq& = GetCopyListCost ("","", "") IF SizeReq& <> 0 THEN GOSUB VWSMALLWIN END END IF VWInstall '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically '' else, it gives the user the choice RESTRT% = RestartListEmpty () Exe$ = DEST$ + "\_msrstrt.exe" Batch$ = DEST$ + "\_mssetup.bat" empty$ = "" VWRESTART: IF RESTRT% = 0 THEN sz$ = UIStartDlg(cuidll$, RESTART, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO VWRESTART ENDIF I% = ExitExecRestart () RemoveFile Exe$, cmoForce RemoveFile Batch$, cmoForce END ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "") IF sz$ = "CONTINUE" THEN I% = ExitWindowsExec (Exe$, empty$) IF I% = 0 THEN GOTO VWRESTART ELSE END ENDIF ELSEIF sz$ = "EXIT" THEN UIPopAll END ELSEIF sz$ = "REACTIVATE" THEN GOTO VWRESTART ELSE UIPop 1 END IF END IF VWQUIT: '* ON ERROR GOTO VWERRQUIT IF ERR = 0 THEN dlg% = EXITSUCCESS ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ELSE dlg% = EXITFAILURE END IF VWQUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO VWQUITL1 END IF UIPop 1 END VWERRQUIT: i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND) END VWASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll '' ERROR STFQUIT END ELSEIF sz$ = "REACTIVATE" THEN GOTO VWASKQUIT ELSE UIPop 1 END IF RETURN VWSMALLWIN: sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO VWSMALLWIN END IF UIPop 1 RETURN END SUB '** '** Purpose: '** Performs all installation operations for the Video for Windows 1.1 runtime. '** Arguments: '** none. '** Returns: '** none. '************************************************************************* SUB VWInstall STATIC SetRestartDir WinDir$ CopyFilesInCopyList ''Updating WIN.INI and SYSTEM.INI IF VflatdPresent() = 0 THEN CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "indeov.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite I% = DoesIniKeyExist (WinDir$+"system.ini", "Drivers", "VIDC.RT21") IF I% = 0 THEN CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "indeov.drv", cmoOverwrite END IF CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "indeov.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg")) Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg")) '' Mplayer CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite Run ("profdisp.exe") END SUB